package com.hangsu.train.components.service;


import com.hangsu.train.components.dto.PermissDto;
import com.hangsu.train.components.dto.SecurityRespDto;
import com.hangsu.train.components.entity.Permiss;
import com.hangsu.train.components.vo.MenuVo;
import com.hangsu.train.components.vo.UserRoleVo;

import java.util.List;

public interface SecurityService {

    /**
     * 获取用户的权限和角色
     *
     * @param userCode
     * @return
     */
    SecurityRespDto getUserSecurity(String userCode);

    /**
     * 根据uid获取权限列表
     *
     * @param userCode
     */
    List<PermissDto> getSecurityList(String userCode);

    /**
     * 获取用户菜单
     *
     * @param userCode
     * @return
     */
    List<MenuVo> getUserMenus(String userCode);

    /**
     * 用户授权
     *
     * @param roleCodes
     * @param userCode
     * @return
     */
    boolean userAuthz(List<String> roleCodes, String userCode);

    /**
     * 获取用户权限
     *
     * @param userCode
     * @return
     */
    List<Permiss> getUserPermiss(String userCode);

    /**
     * 获取用户权限
     *
     * @param userCode
     * @return
     */
    List<UserRoleVo> getUserRoles(String userCode);

}